package com.conselheiro.web.control;

import java.util.List;
import java.util.Map;

import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;

import com.conselheiro.web.entidade.Identificavel;


public abstract class LazyEntidadeDataModel<T extends Identificavel> extends
		LazyDataModel<T> {

	private static final long serialVersionUID = 682599463405946881L;

	public LazyEntidadeDataModel() {
		setPageSize(1);
	}

	// Em geral deve retornar webDao.recuperar(Long.valueOf(rowKey));
	public abstract T getRowData(String rowKey) ;

	public Object getRowKey(T objeto) {
		return objeto.getId();
	}

	public abstract List<T> load(int first, int pageSize, String sortField,
			SortOrder sortOrder, Map<String, String> filters) ;

}
